// 封装集合的构造函数
function Set() {
    
    // 使用一个对象来存储集合的元素
    this.items = {}

    // 集合的操作方法
    // has 检测集合是否有这个元素
    Set.prototype.has = function (value) {
        return this.items.hasOwnProperty(value);
    }

    // add方法
    Set.prototype.add = function (value) {
        // 先判断是否有这个元素
        if (this.has(value)) return false;
        // 添加这个元素
        this.items[value] = value;
        return true;
    }

    // remove方法
    Set.prototype.remove = function (value) {
        // 先判断是否有这个元素
        if (!this.has(value)) return false;
        // 删除元素
        delete this.items[value];
        return true;
    }

    // clear方法
    Set.prototype.clear = function () {
        this.items = {};
    }

    // size方法
    Set.prototype.size = function () {
        return Object.keys(this.items).length;
    }

    // values获取集合中所有的值
    Set.prototype.values = function () {
        return Object.keys(this.items);
    }

    
}